Nunanik allanik niueqateqarneq


Nunanik allanik niueqateqarneq
IEX2PROD_raw <- 
  statgl_url("IEX2PROD", lang = language) %>% 
  statgl_fetch(
    branch = px_all(),
    quarter = 1:4,
    time = px_top(1),
    .col_code = TRUE
  ) %>% 
  as_tibble()

IEX2PROD <- 
  IEX2PROD_raw %>% 
  mutate(branch = branch %>% fct_inorder()) %>% 
  filter(branch %>% str_detect("-[:digit:]")) %>% 
  mutate(
    quarter = quarter %>% fct_inorder(),
    branch = branch %>% str_remove_all("[:digit:]|[:punct:]") %>% trimws(),
    branch = branch %>% fct_inorder()
    ) %>% 
  filter(value != "Na") %>% 
  spread(quarter, value)

IEX2PROD %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEX2PROD[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
kvartal 1 kvartal 2
2025
Avammut tunisat katillugit 1.137.555.286 1.139.725.750
Uumasunit pisut nunalerinermi tunisassiat katillugit 333.055 49.397
Suliffissuarni nioqqutissiat katillugit 245.600.659 305.413.170
Umiarsuit brt sinnerlugit timmisartut qillerisarfiit tunisassiorfiillu katillugit NA 20.588
Aalisagaq peqquk qaleruaqanngitsullu piariigaanngitsut asiunaveersagaanngitsullu katillugt 890.665.665 804.009.658
Ikummatissat punnersaat innaallagiarlu katillugit 3.884 7.043
Nioqqutissat allat katillugit 952.023 30.225.894


Se Statistikbankens tabel: IEX2PROD

IEXANV_raw <- 
  statgl_url("IEXANV", lang = language) %>%
  statgl_fetch(
    quarter   = 1:4,
    time      = px_top(1),
    "end-use" = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

IEXANV <- 
  IEXANV_raw %>% 
  filter(`end-use` %>% word(1) %>% str_detect("-")) %>% 
  mutate(
    `end-use` = `end-use` %>% str_remove_all("[:digit:]|[:punct:]") %>% trimws(),
    `end-use` = `end-use` %>% fct_inorder()
  ) %>% 
  filter(value != "Na") %>% 
  spread(quarter, value)
  
IEXANV %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEXANV[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
kvartal 1 kvartal 2
2025
Nunatsinnut tunisat katillugit 1.049.468.190 1.536.377.257
Nioqqutissat nunalerinermi naatsiivilerinermilu katillugit 6.228.086 8.881.736
Sanaartornermi nioqqutissat katillugit 100.652.376 183.703.004
Inuussutissarsiutit allat katillugit 297.555.309 334.238.641
Ikummatissat punnerusaat innaallagiarlu katillugit 6.090.361 185.282.719
Maskiinat tunisassiornermilu atortut allat katillugit 128.642.545 176.255.276
Assartuutit 39.207.904 41.245.960
Nioqqutissat inuinnarnit toqqaannaq atugassiat 464.148.513 599.065.381
Nioqqutissat allani taaneqanngitsut katillugit 6.943.097 7.704.540


Se Statistikbankens tabel: IEXANV

IEXBALMND_raw <- 
  statgl_url("IEXBALMND", lang = language) %>%
  statgl_fetch(
    month       = px_all(),
    transaction = px_all(),
    time        = px_top(1),
    .col_code   = TRUE
  ) %>% 
  as_tibble()

IEXBALMND <- 
  IEXBALMND_raw %>% 
  mutate(
    month = month %>% str_to_sentence(),
    month = month %>% fct_inorder(),
    transaction = transaction %>% fct_inorder()
  ) %>% 
  filter(value != "Na") %>% 
  spread(transaction, value)

IEXBALMND %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEXBALMND[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Niueqatigiinnermi oqimaaqatigiissut Avammut tunisat Nunatsinnut tunisat
2025
Ukioq tamaat -308.564 2.277.281 2.585.845
Januaari 209.561 561.308 351.747
Februaari -45.258 276.006 321.263
Marsi -76.217 300.241 376.458
Apriili -298.318 294.996 593.313
Maaji -149.281 282.854 432.135
Juuni 50.947 561.877 510.929


Se Statistikbankens tabel: IEXBALMND

IEXSITC_raw <- 
  statgl_url("IEXSITC", lang = language) %>% 
  statgl_fetch(
    processing  = px_all(),
    transaction = 1:2,
    time        = px_top(2),
    .col_code   = TRUE
  ) %>% 
  as_tibble() %>% 
  filter(time != max(time))

IEXSITC <- 
  IEXSITC_raw %>% 
  filter(processing %>% str_detect("I alt|i alt|Katillugit|katillugit|total|Total")) %>%
  mutate(
      processing = processing %>% 
      str_remove_all("[:digit:]|\\-") %>% 
      trimws() %>% 
      fct_inorder(),
      value = value |> prettyNum(big.mark = ".", decimal.mark = ",")
    ) %>% 
  spread(transaction, value) %>% 
  mutate_if(is.numeric, ~replace(., is.na(.), 0)) %>%
  gather(var, val, -c(processing, time)) %>% 
  mutate(var = var %>% str_to_title()) %>% 
  spread(var, val)


IEXSITC %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = table(paste0("Kroner, ", IEXSITC %>% pull(time)))) %>% 
  row_spec(1, bold = TRUE)
Avammut Tunisat Nunatsinnut Tunisat
Kroner, 2024
Katillugit 5.211.739.808 6.791.831.863
Inuussutissat uumasullu katillugit 5.078.795.984 1.110.445.735
Imigassat tupallu katillugit 53.167 332.528.803
Atortussiassat nerineqarsinnaanngitsut (ikummatissaq minillugu), katillugit 13.290.752 48.393.511
Ikummatissat punnerusaallu katillugit 140.918 1.455.812.153
Uumasunit naatitanillu uuliat, orsut voksilu katillugit 3.280 6.376.383
Akuutissat taakkunanngalu nioqqutissiat katillugit 3.107.821 410.718.020
Maskiinat assartuutillu, katillugit 76.196.923 1.596.547.140
Nioqqutissiat suliareriikkat allani ilaanngitsut katillugit 24.564.032 654.057.798
Nioqqutissat aningaasanillu nuussinerit assigiinngitsut katillugit 4.547.935 43.907.560


Se Statistikbankens tabel: IEXSITC


Sidst opdateret: 10. november 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCnsNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQp9DQoNCnsgIA0KbGFuZ3VhZ2UgIDwtIHBhcmFtcyRsYW5nDQpvcHRpb24gICAgPC0gcGFzdGUwKCI/bGFuZz0iLCBsYW5ndWFnZSwgIiZzZWxlY3QiKQ0KbG9nbyAgICAgIDwtIHBhc3RlMChnZXR3ZCgpLCIvYWRkL2xvZ28uZ2lmIikNCnR4dCAgICAgICA8LSByZWFkX3lhbWwocGFzdGUwKGdldHdkKCksICIvYWRkL3R4dC55bWwiKSwgZmlsZUVuY29kaW5nID0gIklTTy04ODU5LTEiKQ0Kc291cmNlICAgIDwtIHR4dCRzb3VyY2VbbGFuZ3VhZ2VdICU+JSB1bmxpc3QoKQ0KfQ0KDQp4YXJpbmdhbkV4dHJhOjp1c2VfY2xpcGJvYXJkKCkNCg0KYGBgDQoNCmBgYHtjc3MsIGVjaG8gPSBGQUxTRX0NCg0KLmFjY29yZGlvbiB7DQogIGJhY2tncm91bmQtY29sb3I6ICM5MTk5MDA7DQogIGNvbG9yOiB3aGl0ZTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBwYWRkaW5nOiAxOHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgYm9yZGVyOiBub25lOw0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgdHJhbnNpdGlvbjogMC40czsNCn0NCg0KLmFjdGl2ZSwgLmFjY29yZGlvbjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmOTcyNDI7DQp9DQoNCi5hY2NvcmRpb246YWZ0ZXIgew0KICBjb250ZW50OiAnXDAwMkInOw0KICBjb2xvcjogIzc3NzsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogIGZsb2F0OiByaWdodDsNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCn0NCg0KLmFjdGl2ZTphZnRlciB7DQogIGNvbnRlbnQ6ICJcMjIxMiI7DQp9DQoNCi5wYW5lbCB7DQogIHBhZGRpbmc6IDBweCA1cHggMHB4IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7DQogIG1heC1oZWlnaHQ6IDA7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4ycyBlYXNlLW91dDsNCn0NCg0KZGV0YWlscyB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQpkZXRhaWxzID4gc3VtbWFyeSB7DQogIHBhZGRpbmc6IDRweCAxMnB4Ow0KICB3aWR0aDogMTAwJTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y5OTsNCiAgYm9yZGVyOiBzb2xpZDsNCiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgY29sb3I6IHdoaXRlOw0KfQ0KDQpkZXRhaWxzW29wZW5dID4gc3VtbWFyeSB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmYWE0MWE7DQp9DQoNCg0KLnRpdGxlIHsNCiAgY29sb3I6ICMxYjU0NjM7DQogIGZvbnQtc2l6ZTogMzZweDsNCn0NCg0KDQoucGVyc29uZXIgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogIzAwNDQ1OTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMC4xcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQouw7hrb25vbWkgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogIzAwN0Y5OTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQoudHbDpnJnw6VlbmRlIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICNmYWE0MWE7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLmNvbnRhaW5lciB7DQogIHdpZHRoOiBpbmhlcml0Ow0KfQ0KDQouc2Nyb2xsLTEwMCB7DQogIG1heC1oZWlnaHQ6IDEwMDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCn0NCg0KDQpwcmUgew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCn0NCg0KcHJlW2NsYXNzXSB7DQogIG1heC1oZWlnaHQ6IDMwMHB4Ow0KfQ0KDQpgYGANCg0KPGJyPg0KPGJyPg0KDQo8Y2VudGVyPg0KDQotLS0NCiANCiMgW2ByIHR4dCRJRSR0aXRsZVtsYW5ndWFnZV1gXXsudGl0bGV9DQogDQotLS0NCjwvY2VudGVyPg0KDQo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4gYHIgdHh0JElFJHRpdGxlW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIklFWDJQUk9EIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCmBgYHtyIElFWDJQUk9EfQ0KDQpJRVgyUFJPRF9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklFWDJQUk9EIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBicmFuY2ggPSBweF9hbGwoKSwNCiAgICBxdWFydGVyID0gMTo0LA0KICAgIHRpbWUgPSBweF90b3AoMSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSUVYMlBST0QgPC0gDQogIElFWDJQUk9EX3JhdyAlPiUgDQogIG11dGF0ZShicmFuY2ggPSBicmFuY2ggJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgZmlsdGVyKGJyYW5jaCAlPiUgc3RyX2RldGVjdCgiLVs6ZGlnaXQ6XSIpKSAlPiUgDQogIG11dGF0ZSgNCiAgICBxdWFydGVyID0gcXVhcnRlciAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBicmFuY2ggPSBicmFuY2ggJT4lIHN0cl9yZW1vdmVfYWxsKCJbOmRpZ2l0Ol18WzpwdW5jdDpdIikgJT4lIHRyaW13cygpLA0KICAgIGJyYW5jaCA9IGJyYW5jaCAlPiUgZmN0X2lub3JkZXIoKQ0KICAgICkgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5hIikgJT4lIA0KICBzcHJlYWQocXVhcnRlciwgdmFsdWUpDQoNCklFWDJQUk9EICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSUVYMlBST0RbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKQ0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSUVYMlBST0QiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzI2YzE1NDA2LWRiN2EtNGM5NS05ZDBmLWQzZDYzYTkzZGEzZSIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJRVhBTlYiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBJRVhBTlZdfQ0KDQpJRVhBTlZfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJRVhBTlYiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JQ0KICBzdGF0Z2xfZmV0Y2goDQogICAgcXVhcnRlciAgID0gMTo0LA0KICAgIHRpbWUgICAgICA9IHB4X3RvcCgxKSwNCiAgICAiZW5kLXVzZSIgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpJRVhBTlYgPC0gDQogIElFWEFOVl9yYXcgJT4lIA0KICBmaWx0ZXIoYGVuZC11c2VgICU+JSB3b3JkKDEpICU+JSBzdHJfZGV0ZWN0KCItIikpICU+JSANCiAgbXV0YXRlKA0KICAgIGBlbmQtdXNlYCA9IGBlbmQtdXNlYCAlPiUgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxbOnB1bmN0Ol0iKSAlPiUgdHJpbXdzKCksDQogICAgYGVuZC11c2VgID0gYGVuZC11c2VgICU+JSBmY3RfaW5vcmRlcigpDQogICkgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5hIikgJT4lIA0KICBzcHJlYWQocXVhcnRlciwgdmFsdWUpDQogIA0KSUVYQU5WICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSUVYQU5WW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCiAgDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklFWEFOViIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvYjBiOTUyZDEtNmVhOS00MTNlLWE5YTMtZDNjN2ZhNWFlNjEzIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMzogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJRVhCQUxNTkQiLCBsYW5nID0gbGFuZ3VhZ2UpKSR0aXRsZSlgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElFWEJBTE1ORH0NCg0KSUVYQkFMTU5EX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiSUVYQkFMTU5EIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIG1vbnRoICAgICAgID0gcHhfYWxsKCksDQogICAgdHJhbnNhY3Rpb24gPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgICA9IHB4X3RvcCgxKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklFWEJBTE1ORCA8LSANCiAgSUVYQkFMTU5EX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBtb250aCA9IG1vbnRoICU+JSBzdHJfdG9fc2VudGVuY2UoKSwNCiAgICBtb250aCA9IG1vbnRoICU+JSBmY3RfaW5vcmRlcigpLA0KICAgIHRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb24gJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIGZpbHRlcih2YWx1ZSAhPSAiTmEiKSAlPiUgDQogIHNwcmVhZCh0cmFuc2FjdGlvbiwgdmFsdWUpDQoNCklFWEJBTE1ORCAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElFWEJBTE1ORFtbInRpbWUiXV0gJT4lIHRhYmxlKCkpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSUVYQkFMTU5EIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9hOGYxNjE4Ni03NGIzLTQyNGQtYWVmZi0xNjdhNjJkZTQ5ZWYiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiSUVYU0lUQyIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElFWFNJVEN9DQoNCklFWFNJVENfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJRVhTSVRDIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBwcm9jZXNzaW5nICA9IHB4X2FsbCgpLA0KICAgIHRyYW5zYWN0aW9uID0gMToyLA0KICAgIHRpbWUgICAgICAgID0gcHhfdG9wKDIpLA0KICAgIC5jb2xfY29kZSAgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkgJT4lIA0KICBmaWx0ZXIodGltZSAhPSBtYXgodGltZSkpDQoNCklFWFNJVEMgPC0gDQogIElFWFNJVENfcmF3ICU+JSANCiAgZmlsdGVyKHByb2Nlc3NpbmcgJT4lIHN0cl9kZXRlY3QoIkkgYWx0fGkgYWx0fEthdGlsbHVnaXR8a2F0aWxsdWdpdHx0b3RhbHxUb3RhbCIpKSAlPiUNCiAgbXV0YXRlKA0KICAgICAgcHJvY2Vzc2luZyA9IHByb2Nlc3NpbmcgJT4lIA0KICAgICAgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxcXC0iKSAlPiUgDQogICAgICB0cmltd3MoKSAlPiUgDQogICAgICBmY3RfaW5vcmRlcigpLA0KICAgICAgdmFsdWUgPSB2YWx1ZSB8PiBwcmV0dHlOdW0oYmlnLm1hcmsgPSAiLiIsIGRlY2ltYWwubWFyayA9ICIsIikNCiAgICApICU+JSANCiAgc3ByZWFkKHRyYW5zYWN0aW9uLCB2YWx1ZSkgJT4lIA0KICBtdXRhdGVfaWYoaXMubnVtZXJpYywgfnJlcGxhY2UoLiwgaXMubmEoLiksIDApKSAlPiUNCiAgZ2F0aGVyKHZhciwgdmFsLCAtYyhwcm9jZXNzaW5nLCB0aW1lKSkgJT4lIA0KICBtdXRhdGUodmFyID0gdmFyICU+JSBzdHJfdG9fdGl0bGUoKSkgJT4lIA0KICBzcHJlYWQodmFyLCB2YWwpDQoNCg0KSUVYU0lUQyAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUocmVwbGFjZV8wcyA9IFRSVUUpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gdGFibGUocGFzdGUwKCJLcm9uZXIsICIsIElFWFNJVEMgJT4lIHB1bGwodGltZSkpKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCiAgDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklFWFNJVEMiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2NlYjliNGEwLTNlZmQtNGQ2YS04NWQ1LTFhMjZmYWIxMmY4MyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQo8L2RldGFpbHM+DQoNCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQoNCg0K